package io.bdmc.modules.bss.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 设备监控的数据，以及测试参数，高级参数。需要设置。 实体
 * </p>
 *
 * @author ping
 * @since 2020-06-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
// "DeviceMonitorDynamic对象", description = "设备监控的数据，以及测试参数，高级参数。需要设置。")
public class DeviceMonitorDynamic extends Model<DeviceMonitorDynamic> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "monitor_id", type = IdType.AUTO)
    private Integer monitorId;

    // "设备ip地址")
    private String devIpAddr;

    // "设备id")
    private Integer deviceId;

    // "相应端口如果有光纤为1，否则为0，只监控保存有光纤的通道的数据和信息；")
    private String portActive;

    // "表示测试的范围，单位Km；可设置的值为5，25，50，125，160，260；(单位km)")
    private String endPosition;

    // "表示折射率；1.400 ~1.700")
    private String refIndex;

    // "表示分辨率；")
    private String resolution;

    // "0：空闲；1：正在自动测试；2：正在单次测试；3：单次测试完成；4：测试失败；")
    private String status;

    // "1：启动自动测试；2：停止自动测试；3：启动单次测试；")
    private String action;

    // "表示脉冲宽度；可设置的参数为10，30，100，300，1000，3000，10000，20000，单位ns；")
    private String pulseWidth;

    // "测量时间；")
    private String time;

    // "测试进度")
    private String progressStatus;

    // "TLOS，需要在高级参数里面显示")
    private String tlos;

    // "TREF，需要在高级参数里面显示")
    private String tref;

    // "光缆长度紧急告警，需要在高级参数里面显示")
    private String fiberLengthChangeThreshold;

    // "光缆衰耗紧急告警，需要在高级参数里面显示")
    private String endToEndLossHighThreshold;

    // "光缆衰耗主要告警，需要在高级参数里面显示")
    private String endToEndLossMiddleThreshold;

    // "光缆衰耗次要告警，需要在高级参数里面显示")
    private String endToEndLossLowThreshold;

    // "衰减系数阈值，需要在高级参数里面显示")
    private String attenuationCoefficientChange;

    // "自动监测已经测试的次数")
    private String number;

    // "文件数量，需要在高级参数里面显示")
    private String numberSorStoredEachChannel;

    // "测速器")
    private String fiberLengthTrapThreshold;

    // "光纤测量对比次数，需要在高级参数里面显示")
    private String fiberLengthTrapComparisonTimes;

    private String maximumEndToEndLossThreshold;

    // "测量屏蔽，需要在高级参数里面显示")
    private String trapShielding;

    // "新增事件紧急告警，需要在高级参数里面显示")
    private String newLossCriticalThreshold;

    // "新增事件主要告警，需要在高级参数里面显示")
    private String newLossMajorThreshold;

    // "新增事件次要告警，需要在高级参数里面显示")
    private String newLossMinorThreshold;

    // "事件损耗紧急告警，需要在高级参数里面显示")
    private String oldLossCriticalThreshold;

    // "事件损耗主要告警，需要在高级参数里面显示")
    private String oldLossMajorThreshold;

    // "事件损耗次要告警，需要在高级参数里面显示")
    private String oldLossMinorThreshold;

    // "新增事件位置变化阈值，需要在高级参数里面显示")
    private String eventPositionChangeThreshold;

    // "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    @Override
    public Serializable pkVal() {
        return this.monitorId;
    }

}
